前面安裝好了kubelet, kubeadm, kubectl,再來就是介紹它們之間的用途為何
在 kubernetes 的設計中,最基本的管理單位是 pod,而不是 container。 pod 是 kubernetes 在容器上的一層封裝,由一組運行在同一主機的一個或者多個容器組成。如果把容器比喻成傳統機器上的一個進程(它可以執行任務,對外提供某種功能),那麼 pod 可以類比為傳統的主機:它包含了多個容器,為它們提供共享的一些資源。
之所以費功夫提供這一層封裝,主要是因為容器推薦的用法是裡面只運行一個進程,而一般情況下某個應用都由多個元件構成的。
pod 中所有的容器最大的特性也是最大的好處就是共享了很多資源,比如網路空間。 pod 下所有容器共享網路和端口空間,也就是它們之間可以通過 localhost 訪問和通訊,對外的通信方式也是一樣的,省去了很多容器通訊的麻煩。
除了網路之外,定義在 pod 裡的 volume 也可以 mount 到多個容器裡,以實現共享的目的。
最後,定義在 pod 的資源限制(比如 CPU 和 Memory) 也是所有容器共享的。
我們都知道集群這個東西從來就不是簡單的事。在kubeadm出現之前我們搭建一個k8s的集群是很費勁的, 需要安裝各種服務,配置各種參數。隨著docker1.12發布的swarm mode打破了集群搭建困難這個事。它能使用一條命令就創建一個集群出來, 極大的降低了swarm mode的使用門檻, 即便你只是剛剛入門沒多久的docker 使用者, 也可能很容易的搭建出一個swarm 集群玩玩。基於這種簡化操作,降低使用門檻的目的。 google也隨之推出了kubeadm這個工具, 同樣提供一個kubeadm init 命令初始化集群, kubeadm join 擴充節點。使得我們可以很方便的搭建出我們自己的集群。同時你仍然可以根據你自己的需要安裝各種add-on來擴充集群功能。這些add-on全部是容器化部署,你可以在k8s的github上找到。使用簡單方便。
kubectl 是一支用來與 k8s 叢集溝通的二進位 (binary) 工具。我們可以運用 kubectl 來